package com.ruoyi.house.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.build.domain.HouseBuilder;
import com.ruoyi.floor.domain.HouseFloor;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 房间对象 house_info
 * 
 * @author hct
 * @date 2022-02-11
 */
@Data
public class HouseInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 所属楼宇id */
    @Excel(name = "所属楼宇id")
    private Long builderId;

    private HouseBuilder houseBuilder;

    /** 建筑面积 */
    @Excel(name = "建筑面积")
    private Long area;
 
    /** 房间号 */
    @Excel(name = "房间号")
    private String roomnumber;

  
    /** 可租面积 */
    @Excel(name = "可租面积")
    private Long rentarea;

    /** 0代表未租 1代表已租 */
    @Excel(name = "0代表未租 1代表已租")
    private Integer houseStatus;

    /** 所属楼层id */
    @Excel(name = "所属楼层id")
    private Long floorId;
    private HouseFloor houseFloor;

    /** 租金 */
    @Excel(name = "租金")
    private BigDecimal rentMoney;

    /** 单位 1元/m2/天,2元/m2/月,3元/月,4元/天 */
    @Excel(name = "单位 1元/m2/天,2元/m2/月,3元/月,4元/天")
    private Long rentUnit;

    /** 物业费 */
    @Excel(name = "物业费")
    private BigDecimal propertyMoney;

    /** 物业费单位元/m2/天,元/m2/月,元/月,元/天 */
    @Excel(name = "物业费单位元/m2/天,元/m2/月,元/月,元/天")
    private Long propertyUnit;

    /** 上架下架 0代表上架1代表下架 */
    @Excel(name = "上架下架 0代表上架1代表下架")
    private Integer isMarketable;

    /** 公摊面积 */
    @Excel(name = "公摊面积")
    private Long publicArea;

    /** 是否可以预定 0未预定，1已预定 */
    @Excel(name = "是否可以预定 0未预定，1已预定")
    private Integer reserveStatus;

    /** 合同到期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同到期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractEndTime;


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("builderId", getBuilderId())
            .append("area", getArea())
            .append("createTime", getCreateTime())
            .append("remark", getRemark())
            .append("roomnumber", getRoomnumber())
            .append("updateTime", getUpdateTime())
            .append("rentarea", getRentarea())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("houseStatus", getHouseStatus())
            .append("floorId", getFloorId())
            .append("rentMoney", getRentMoney())
            .append("rentUnit", getRentUnit())
            .append("propertyMoney", getPropertyMoney())
            .append("propertyUnit", getPropertyUnit())
            .append("marketable", getIsMarketable())
            .append("publicArea", getPublicArea())
            .append("reserveStatus", getReserveStatus())
            .append("contractEndTime", getContractEndTime())
            .toString();
    }
}
